// components/dialog/dialog2/dialog2.js
// https://www.cnblogs.com/zwh0910/p/17582085.html
const TIME_DOWN = 3;

Component({

  /**
   * 组件的属性列表
   */
  properties: {
    isShow: { // false:弹出框消息  true:弹出框显示
      value: true,
      type: Boolean
    },
    title: {// 弹出框需要显示的标题
      value: '标题',
      type: String
    },
    contentStr: {//弹出框需要显示的内容
      value: '内容',
      type: String
    },
    btnStr: {// 按钮文本(可进行自行扩展两个按钮)
      value: '按钮-确定',
      type: String
    },
    downTime: { // 倒计时计时器
      value: 0,
      type: Number,
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    timeId: null,// 弹出框消息倒计时标识
    // downTime:0, // 要显示在组件应放到properties
  },

  pageLifetimes:{
    show:function (){
      wx.showToast({
        title: 'pageLifetimes shoow',
      })
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    hideClick() { //点击弹出框的任意位置进行点击事件的传递，从而修改isShow的值，来控制弹出框消失
      // clickDialog 函数， {isShow：xxx} 参数
      this.triggerEvent('clickDialog', {
        isShow: false
      })
      // clearTimeout(this.data.timeId)
      clearInterval(this.data.timeId)
    }
  },

  observers: {//监听isShow属性的变化，来进行判断是否显示弹出框
    "isShow": function (value) {
      clearTimeout(this.data.timeId);
      console.log('observers isShow ', value)
      this.setData({
        downTime: TIME_DOWN
      });
      if (value) {
        // 展示后2秒自动取消
        // this.data.timeId = setTimeout(() => {
        //   this.setData({
        //     isShow: false,
        //   });
        // }, 50000);
        this.data.timeId = setInterval(() => {
          if (this.data.downTime < 1) {
            clearInterval(this.data.timeId)
            this.setData({
              isShow: false,
            });
          } else {
            console.log('observers 22 setInterval ', this.data.downTime)
            this.setData({
              // downTime: (this.data.downTime--),// 这个不可以
              downTime: this.data.downTime - 1,
            });
          }
        }, 1000);
      }
    }
  },
})